#ifndef _BURST_KERNEL_H
#define _BURST_KERNEL_H

#define INLINE __inline
#define EXTERN extern
#define BUS_BUF_SIZE 4096

#include <winsock2.h>
#include <memory.h>
#include <types.h>
#include <burst_rbtree.h>
#include <burst_list.h>
#include <burst_malloc.h>
#include <burst_bug.h>
#include <burst_event.h>
#include <burst_module.h>
#include <burst_os.h>
#include <burst_event_bit.h>
#include <burst_buffered_io.h>
#include <burst_internal_module_select.h>
#include <burst_grammar.h>

/* burst_math.c */
extern u64 add(u64 a, u64 b);
extern u64 sub(u64 a, u64 b);
extern u64 imul(u64 a,u64 b);
extern u64 idiv(u64 a, u64 b);


static INLINE void *dlzalloc(size_t size)
{
	void *mem = dlmalloc(size);
	if(!mem) {
		return NULL;
	}
	memset(mem, NULL, size);
	return mem;
}

#endif